Technical enhancements to stp (ieee 802.1d) implementation

ABSTRACT

An embodiment includes a method of minimizing the delay in convergence time for a complex STP topology following a topology change in the network system in the spanning tree protocol (STP) standard, including: 
     receiving, by a root port of a first bridge, a data message that includes identification of a current root bridge and a priority value of the current root bridge; receiving, by a second port of the first bridge, a second data message from a second bridge; and if a message age timer of the first bridge has less than a limiting message age time value remaining before expiry, then blocking a reply, by the second port of the first bridge, to the second data message from the second bridge.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of Ser. No. 12/509,313, filed on Jul.24, 2009, which is a continuation of prior U.S. patent application Ser.No. 10/394,344, entitled “Technical Enhancements to STP (IEEE 802.1D)Implementation,” filed on Mar. 20, 2003, now U.S. Pat. No. 7,586,856.

TECHNICAL FIELD

Embodiments of the present invention relate generally to communicationnetworks. More particularly, embodiments of the present inventionprovide enhancements to the STP (IEEE 802.1D) implementation.

BACKGROUND

The Institute of Electrical and Electronics Engineers (IEEE) 802.1DSpanning-Tree Protocol (STP) standard is a link management protocol andprovides distributed routing over multiple Local Area Networks (LANs)that are connected by Media Access Control (MAC) bridges. The 802.1Dstandard is presented in detail in IEEE Standard for Local andMetropolitan Area Networks-Common Specification, Part 3: Media AccessControl (MAC) Bridges (The Institute of Electrical and ElectronicsEngineers, Inc., New York, N.Y. 1998), which is hereby fullyincorporated herein by reference.

The STP protocol provides path redundancy, while preventing undesirableloops in a network that are created by multiple active paths betweenbridges. Loops occur when there are alternate routes between hosts. Toestablish path redundancy, STP creates a tree that spans all of thebridges in an extended network, forcing redundant paths into a standby,or blocked, state. STP allows only one active path at a time between anytwo network devices (this prevents the loops), but establishes theredundant links as a backup path if the initial link should fail. If STPcosts change, or if one network segment in the STP becomes unreachable,then STP reconfigures the spanning tree topology and reestablishes thelink by activating the standby path. Without the spanning tree in place,it is possible that both connections may be simultaneously live, whichcould result in an endless loop of traffic on the Local Area Network(LAN).

For any network topology changes, the convergence time in the STP (IEEE802.1D) standard is usually about 50 seconds (i.e., two times theforward delay plus a maximum age time).

However, there is a need for further enhancements and optimizations tothe implementation of the STP (IEEE 802.1D) standard.

SUMMARY OF EMBODIMENTS OF THE INVENTION

In one embodiment of the invention, a method of performing root portselection computation in the spanning tree protocol (STP) standard,includes:

-   -   determining if a port is in a loopback connection in a bridge;    -   and    -   excluding the port from the root port selection computation if        the port is in a loopback connection.

In another embodiment of the invention, a method of placing a port in aforwarding state in the spanning tree protocol (STP) standard, includes:

-   -   initially placing a port in fast span configuration;    -   if no BPDU is detected by the port, then maintaining the fast        span configuration; and    -   shortening the forward delay if the port is maintained in the        fast span configuration.

In another embodiment of the invention a method of minimizing the delayin convergence time for a complex STP topology following a topologychange in the network system in the spanning tree protocol (STP)standard, includes:

-   -   receiving, by a root port of a first bridge, a data message that        includes identification of a current root bridge and a priority        value of the current root bridge;    -   receiving, by a second port of the first bridge, a second data        message from a second bridge; and    -   if a message age timer of the first bridge has less than a        limiting message age time value remaining before expiry, then        blocking a reply, by the second port of the first bridge, to the        second data message from the second bridge.

In another embodiment, an apparatus for performing root port selectioncomputation in the spanning tree protocol (STP) standard, includes:

-   -   a bridge including an STP module and an enhancement module;    -   the STP module configured to perform processing functions of the        STP protocol; and    -   the enhancement module configured to determine if a port is in a        loopback connection in the bridge, and exclude the port from the        root port selection computation if the port is in a loopback        connection.

In yet another embodiment, an apparatus for placing a port in aforwarding state in the spanning tree protocol (STP) standard, includes:

-   -   a bridge including an STP module and an enhancement module;    -   the STP module configured to perform processing functions of the        STP protocol;    -   the enhancement module configured to initially place a port in        fast span configuration;    -   the enhancement module configured to maintaining the fast span        configuration, if no BPDU is detected by the port; and    -   the enhancement module configured to shorten a forward delay if        the port is maintained in the fast span configuration.

In yet another embodiment, an apparatus for minimizing the delay inconvergence time for a complex STP topology following a topology changein the network system in the spanning tree protocol (STP) standard, theapparatus comprising:

-   -   a bridge including an STP module and an enhancement module;    -   the STP module configured to perform processing functions of the        STP protocol;    -   the bridge configured to receive a data message that includes        identification of a current root bridge and a priority value of        a current root bridge;    -   the bridge configured to receive a second data message from a        second bridge; and    -   the bridge configured to block a reply to the second data        message from the second bridge, if a message age timer of the        bridge has less than a limiting message age time value remaining        before expiry.

These and other features of an embodiment of the present invention willbe readily apparent to persons of ordinary skill in the art upon readingthe entirety of this disclosure, which includes the accompanyingdrawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments of the present invention aredescribed with reference to the following figures, wherein likereference numerals refer to like parts throughout the various viewsunless otherwise specified.

FIG. 1 is a block diagram of a bridge protocol data unit (BPDU) used inaccordance with an embodiment of the invention.

FIG. 2 is a block diagram of a STP topology to explain port roles in thebridges (or switches) in a network system 200.

FIG. 3 is a block diagram of a network system 300 which illustrate amethod of performing a root port selection when a logical loopback ispresent in a bridge, in accordance with an embodiment of the invention.

FIG. 4 is a block diagram that illustrates additional components in abridge, in accordance with an embodiment of the invention.

FIG. 5 is a block diagram of a network system where various bridges areconnected to a workstation or computer, in accordance with an embodimentof the invention.

FIG. 6 is a block diagram that illustrates additional components in abridge to describe a method of rapidly placing a fast-span port intoforwarding state, in accordance with an embodiment of the invention.

FIG. 7A is a block diagram of a network system, where the root bridgehas a priority value of 50.

FIG. 7 b is a block diagram of the network system of FIG. 7A after STPconvergence has occurred.

FIG. 7C is a block diagram of a network system, where a root bridge hasa priority value is changed.

FIG. 8 is a block diagram that illustrates additional components in abridge to describe a method of minimizing the delay in convergence timefor a complex topology change in the network system, in accordance withan embodiment of the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the description herein, numerous specific details are provided, suchas examples of components and/or methods, to provide a thoroughunderstanding of embodiments of the invention. One skilled in therelevant art will recognize, however, that an embodiment of theinvention can be practiced without one or more of the specific details,or with other apparatus, systems, methods, components, materials, parts,and/or the like. In other instances, well-known structures, materials,or operations are not shown or described in detail to avoid obscuringaspects of embodiments the invention.

FIGS. 1 is a block diagram of a bridge protocol data unit (BPDU) 100used in accordance with an embodiment of the invention. BPDUs are datamessages that are exchanged across the switches within an extended localarea network (LAN) that uses a spanning tree protocol topology. BPDUpackets contain information on, for example, ports, addresses,priorities and costs and ensure that the data ends up where the data wasintended to go. BPDU messages are exchanged across bridges to detectloops in a network topology. The loops are then removed by shutting downselected bridge interfaces and placing redundant switch ports in abackup, or blocked, state.

In an embodiment, a BPDU 100 typically includes the following fields 105to 120: a root identification (ID) 105 which contains the sameinformation as the bridge ID (identifier) in the following format{bridge priority:lowest MAC address}, a path cost 110, a designatedbridge ID 115, and a designated port ID 120. To determine the moreuseful (or superior) BPDU between two particular different BPDUs, theBPDU values in FIG. 1 are compared by a bridge that receives the BPDU.The BPDU with the numerically lower value is selected as the more usefulBPDU.

FIG. 2 is a block diagram of a STP topology to explain port roles in thebridges (or switches) in a network system 200. The system 200 includesbridges FDRY1 205, FDRY2, 210, FDRY3 215, and FDRY4 220. Each of thebridges transmits a BPDU to identify itself to other bridges in thesystem 200. When a bridge receives a BPDU, the bridge will compare thereceived BPDU with a BPDU that can be sent by the bridge to determinewhich BPDU is more useful. As mentioned above, the BPDU with thenumerically lower value is selected as the more useful BPDU.

A “root bridge” sends BPDUs that are more useful than BPDUs that anyother bridge can send. The root bridge is the only bridge in the networkthat does not have a root port. All other bridges receive BPDUs on atleast one port.

In the example of FIG. 2, bridge FDRY1 205 is selected as the rootbridge because the bridge priority value (value=100) of bridge FDRY1 205is numerically lower than the bridge priority value of each of thebridge FDRY2 210, bridge FDRY3 215, and bridge FDRY4 220. Since bridgeFDRY1 205 has a port 2 (206) and a port 3 (208) connected to bridgeFDRY2 210 and bridge FDRY3 215, respectively, the ports on bridge FDRY1205 will be in a forwarding state, in the absence of a loopbackconnection between two ports in the bridge FDRY1 205.

A port is a “designated port” if it can send the best (most useful) BPDUon the segment to which it is connected. The IEEE 802.1D bridges createa bridge domain by linking together different segments such as, forexample, Ethernet segments. On a given segment, there can only be onepath toward the root bridge. If there were two paths, then there wouldbe a bridging loop in the network. All bridges connected to a givensegment listen to each other's BPDUs and agree on the bridge sending thebest BPDU as the designated bridge for the segment. The correspondingport on that bridge is a designated port. In the example of FIG. 2, thedesignated ports are shown as ports 206 and 208 on the root bridge FDRY1205. Thus, the ports 206 and 208 are in the forwarding state.

The port receiving the best Bridge Protocol Data Unit (BPDU) on a bridgeis a “root port”. This is the port that is closest to the root bridge interms of path cost. In the example of FIG. 2, a port 211 on the bridgeFDRY2 210 is selected as a root port 211, since the port 211 isconnected to the root bridge FDRY1 205. A port 216 on the bridge FDRY3215 is selected as a root port 216, since the port 216 is connected tothe root bridge FDRY1 205.

Bridge FDRY4 220 will receive more useful BPDUs at port 3 (222) and port4 (224) than the BPDUs that the bridge FDRY4 220 can send out. Thereason for this is because the bridge FDRY4 220 has a priority value of400, which is a numerically higher value than each of the priorityvalues in the other bridges FDRY1 205, FDRY2 210, and FDRY3 215. Inother words, bridge FDRY4 220 has the least priority in the system 200.

A “blocked port” is defined as not being the designated port or the rootport. A blocked port receives a more useful BPDU than the BPDU it wouldsend out on its segment. An “alternate port” is a port blocked byreceiving more useful BPDUs from another bridge.

It is noted that bridge FDRY2 210 has a lower bridge priority value(value=200) than the bridge priority value of bridge FDRY3 215(value=300). Therefore, bridge FDRY2 210 can transmit a more useful BPDU100 than the BPDU that can be transmitted by the bridge FYFDRY3 215.Therefore, port 3 (222) on bridge FDRY4 220 will be assigned the role ofroot port in a forwarding state. Since port 4 (224) on bridge FDRY4 220receives more useful BPDUs 100 than the BPDUs 100 that can betransmitted by the bridge FDRY4 220, port 4 (224) will assume the roleof a blocked port or an alternate port.

Port 4 (217) on bridge FDRY3 215 is connected to the alternate port 224on bridge FDRY4 220. Therefore, port 4 (217) on bridge FDRY3 215 assumesthe role of a designated port and will be in a forwarding state.

The roles of port 3 (219) on bridge FDRY3 215 and port 3 on bridge FDRY2210 are established based on the following discussion. It is noted thatbridge FDRY2 210 has a lower bridge priority value (value-200) than thebridge priority value of bridge FDRY3 215 (value=300). Therefore, bridgeFDRY2 210 can transmit a more useful BPDU 100 than the BPDU that can betransmitted by bridge FDRY3 215. In other words, the BPDU that isreceived by bridge FDRY3 215 on port 3 (219) will be more useful thanthe BPDU that can be transmitted by port 3 (219) on bridge FDRY3 215.However, since port 2 (216) on bridge FDRY3 215 has already beenestablished as a root port, the port 3 (219) will assume the role of ablocked port. Port 3 (212) on bridge FDRY2 (210) is a designated portand will go into a forwarding state.

Port 7 (213) and port 8 (214) on bridge FDRY2 210 form a loopbackconnection 230. The blocking port and the forwarding port is determinedbased on the following. The designated port ID 120 (FIG. 1) is a unionof port priority value and port number {port priority:port number}. Theport priority value for BPDUs 100 sent from each of the port 7 (213) andport 8 (214) is value=200. Thus, the port number will determine if theBPDU from port 7 (213) or from the BPDU from port 8 (214) is moreuseful. Since port 7 (213) is numerically lower than port 8 (214), port7 (213) sends the more useful BPDU 100. Therefore, port 7 (213) willassume the role of designated port in a forwarding state, and port 8(214) will assume the role of blocked port.

It is noted that two instances of expiry of a single timer (forwarddelay timer) changes the state of a designated port. After a first timerexpiry event occurs, a designated port will change state from a“listening state” to a “learning state. A particular port in a listeningstate is defined as a state where the bridge listens to BPDUs on theparticular port. A particular port in a learning state is defined as astate where the particular port can learn about MAC (Media AccessControl) flows, but the particular port is prohibited from forwardingthe MAC flows. A MAC flow is defined as any network traffic that is in aLayer 2 flow.

After the second timer expiry, the designated port will change statefrom a “learning state” to a “forwarding state”. A particular port in aforwarding state is defined as a state where the bridge can listen,learn, or forward data traffic on the particular port. This is the samemethod used by STP to make a root port into forwarding state.

As an example, assume that port 2 (216) on bridge FDRY3 215 fails, wherethis port 2 (216) has the role of a root port as discussed above. Inthis failure condition, it can be assumed that a valid connection nolonger exists between port 3 (208) on bridge FDRY1 205 and port 2 (216)on bridge FDRY3.

If an alternate port exists on the bridge FDRY3 215, then the alternateport will assume the role of root port. In the example of FIG. 2, port 3(219) on bridge FDRY3 215 has the role of alternate port, as discussedabove. Therefore, the role of port 3 (219) will change from an alternateport to a root port, when the root port 2 (216) fails. Since the port 3(219) has changed to a root port, the port 3 (219) will change into aforwarding state. As similarly mentioned, two timer expiry events willoccur before the new root port 3 (219) goes into the forwarding state.

Since the root port of bridge FDRY3 215 has changed from port 2 (216) toport 3 (219), a topology change event has occurred in the system 200.Therefore, the new root port (i.e., port 3 (219) in this example)transmits a topology change notification (TCN) packet 250 to itsconnected designated port (i.e., port 3 (212) in bridge FDRY2 210 inthis example). The TCN packet 250 has the purpose of propagating thetopology change information across the entire system 200. When thedesignated port 3 (212) receives the TCN packet 250, the port 3 (212)acknowledges the receipt of the TCN packet 250 by replying with aTCN-ACK BPDU packet 255 to the port 3 (219) which had sent the TCNpacket 250, so that the sender of the TCN packet 250 can stoptransmitting the TCN packet 250. This TCN-ACK BPDU packet helps to avoidthe transmission of duplicate TCNs packets 250. Typically, the TCN-ACKBPDU packet is a BPDU 100 with a TC-ACK bit set.

In order to propagate the topology change in the system 200, the bridgeFDRY2 210 will forward the received TCN packet 250 through its root port(i.e., port 2 (211) in the example of FIG. 2). Therefore, the rootbridge FDRY1 205 will receive the TCN packet 250. The root bridge FDRY1205 then sets a topology change flag 125 in its outgoing BPDUs 100 toindicate that all bridges in the system 200 should flush their MACtables because of the topology change event. When other bridges in thesystem 200 receives the BPDU 100 with the set topology change flag 125,the other bridges will set the topology change flag 125 in theiroutgoing BPDUs 100 that are transmitted from their designated ports.

When convergence has been achieved in the system 200, all of thedesignated ports can transmit the BPDUs 100 and the blocked ports androots ports do not transmit the BPDUs 100.

FIG. 3 is a block diagram of a network system 300 which illustrate amethod of performing a root port selection when a logical loopback ispresent in a bridge, in accordance with an embodiment of the invention.As discussed above, the STP standard explicitly assigns a unique rolefor each port in a bridge. The STP BPDUs 100 transmitted from any portwill be as per the role assigned to the port by the STP algorithm.

Enhancement 1

It is noted that in the STP standard, when an STP bridge is the rootbridge, the bridge selects a backup port errantly as a root port whenthe bridge priority is changed. A method in accordance with anembodiment of the invention advantageously eliminates this problem forports in a loopback connection.

In the example of FIG. 3, the system 300 includes the bridge FDRY1 205with bridge priority value equal to 600, bridge FDRY2 210 with bridgepriority value equal to 100, and bridge FDRY3 215 with bridge priorityvalue equal to 2000. Also, in system 300, the STP forwarding path hasconverged, and port 6 (260) on bridge FDRY2 210 is a designated port andport 8 (214) on bridge FDRY2 210 is an alternate port.

Assume in this example that the priority of bridge FDRY2 210 is changed(e.g., by an administrator) from the value of 100 to a value of 3000, sothat the bridge FDRY2 210 now has the least priority among the bridgesin system 300. Due to an error in root selection( ) algorithm in the STPstandard, port 8 (214) will be selected as a root port on bridge FDRY2210 to correspond to the old bridge priority value (of bridge FDRY2 210)which is value 100. This causes STP to take additional 20 seconds sothat the message age timer on FDRY2 will be able to expire. Each bridgemaintains a timer for its non-designated ports. This timer is referredto as the message age timer. The message age timer will not be activefor a designated port.

In the example of FIG. 3, port 8 (214) is physically loop backed to port6 (260), via loopback connection 230. Initially, when the bridge FDRY2210 has a bridge priority value of 100, port 2 (211) and port 4 (261)are in the forwarding state, while port 6 (260) is in a forwarding andport 8 (214) is in a blocked state.

A method to identify a loopback connection is described below withreference to FIG. 4.

In the steady state, port 8 (214) has stored values indicating that thebridge priority value of bridge FDRY2 210 is at value=100. Now assume,for example, that an administrator changes the bridge priority value ofbridge FDRY2 210 to a value=3000. Since the port 8 (214) still storesthe former bridge priority value of 100, the STP root port selectionalgorithm will select port 8 (214) as the new root port for the bridgeFDRY2 210. However, in this example, when the bridge priority value ofbridge FDRY2 210 is changed from 100 to 3000, then port 2 (211) shouldassume the role of root port in the steady state (since bridge FDRY1 205will assume the role of root bridge) and port 4 (261) should assume therole of a blocked port. Port 6 (260) should be in a forwarding state,while port 8 (214) should be in a blocked port. An embodiment of theinvention advantageously provides a method to prevent a port in aloopback connection (such as port 8 (214) on bridge FDRY2 210) to assumethe role of root port, as described below.

In an embodiment of the invention, a method for computation of a rootport will exclude all self loop ports in the root port computation.Thus, this exclusion of a self loop port in the root port computationadvantageously avoids in changing the role of a blocked port into a rootport. In the example of FIG. 3, the port 8 (214) and port 6 (260) in theloopback connection 230 are excluded from the root port computation.

FIG. 4 is also a block diagram that illustrates additional components inthe bridge FDRY2 210, such as the enhancement module 405, STP module410, and packet processor 415, in accordance with an embodiment of theinvention. It is noted that an enhancement module 405, STP module 410,and packet processor 415, and/or other components are also implementedin the other bridges in an embodiment of the network system 100. Theenhancement module 405 performs processing functions as describedherein, in accordance with embodiments of the invention. The STP module410 performs processing functions of the STP protocol. The packetprocessor module 415 performs processing functions for packets that arereceived and/or transmitted by the bridge FDRY2 210.

The bridge FDRY2 210 (as well as other bridges in the system 200) alsoincludes a message age timer 416 which is a timer for its non-designatedports. The bridge FDRY2 210 (as well as other bridges in the system 200)further includes the message age timer 416 to track the maximum periodof time that is timed out when determining if a root port is able tolisten for BPDUs from the root bridge.

The port 8 (214) receives BPDUs 100 a in a virtual pipe 418. To identifyports in a loopback connection, the receiving port 8 (214) checks theTRANSMITTING_BRIDGE_ID parameter (field 115 in FIG. 1) of a BPDU message100 a that is received by the port 8 (214) from the port 6 (260). Theenhancement module 405 performs this checking function. If theTRANSMITTING_BRIDGE_ID parameter corresponds to the BRIDGE_ID (bridgeidentifier) 420 of the receiving port 8 (214), then the receiving port 8(214) is categorized as a “self loop port” (i.e., the receiving port isin a loopback connection). If the enhancement module 405 categorizes thereceiving port 8 (214) as a self loop port, then the enhancement module405 will set a flag SLP 425 in the port 8 (214). The bridge ID 420 andflag SLP 425 are typically stored in a memory 430 in the port 8 (214).The enhancement module 405 will set a flag SLP 425 in other ports thatis detected as a self loop port.

Since the flag SLP 425 has been set in the port 8 (214), the STP module410 will exclude the port 8 (214) in the root port computation.

It is noted that the various codes or modules in FIG. 4 are shown asseparate blocks for purposes of explaining the functionalities ofembodiments of the invention. However, it is within the scope ofembodiments of the invention to integrate the various modules intovarious configurations. For example, the enhancement module is typicallyintegrated with the STP module.

Enhancement 2

The STP standard treats all ports alike. In other words, the STPstandard does not distinguish ports that are connected to bridges andports that are connected to processors. As mentioned above, two timeexpiry events are required to occur before a port will go into aforwarding state.

An embodiment of the invention permits a port to go into a forwardingstate much faster than the two time expiry events delay, if the port isconnected to a computer or workstation and is not connected to an 802.1Dcompatible switch.

Fast-span ports are ports in a bridge, which connects to workstations orcomputers. Fast-span ports do not register any incoming BPDU activity onthem. Also the role of a fast-span port will remain as a designated portas long as the fast-span port does not register an incoming BPDUactivity.

In the network system 500 in FIG. 5, port 5 (505) of bridge FDRY2 210 isconnected to a workstation 510, such as a SUN SPARC workstation. Port 5(515) of bridge FDRY3 215 is connected to a computer 520, such as alaptop computer. Therefore, the port 5 (505) and port 5 (515) arefast-span ports. Other types of computing devices that do not send BPDUsmay be used instead of the workstation 510 and/or computer 520 toconnect to the fast-span ports.

An embodiment of the invention provides a method where, if a port isconfigured as an fast-span port, then the port goes to forwarding staterapidly (e.g., in less than approximately 4 seconds) when the STP module410 (FIG. 6) initializes the port. If, however, an incoming BPDU isreceived from a previously configured Fast-span port, then the STPmodule 410 automatically makes this port as non-Fast-span port. It istypically extremely important to make the Fast-span port into to anon-Fast-span port when a BPDU is received, in order to ensure a loopfree Layer 2 operation.

The fast span feature will be enabled by default on all the bridge portsand the fast span feature will be disabled as the port learns ofmultiple MAC addresses from a MAC client or registers incoming BPDUactivity on the port.

In an embodiment of the invention, if fast span is enabled on a port,then an embodiment of the invention dynamically shortens the value ofthe forward delay timer on the port, and the port goes to forwardingstate on this short timer. In the example of FIG. 6, when fast span isenabled on the port 5 (505), then the enhancement module 405 dynamicallyshortens the value of the forward delay timer 605 on the port 5 (505),and the port 5 (505) goes into forwarding state on this short timervalue of timer 605.

The rest of the ports (e.g., port 4), which have fast span disabled,will go to a forwarding state, only after two instances of expiration ofthe default value of a forward delay timer (e.g., timer 610).

The fast span feature on the port 5 (505) is enabled by a “fast span”flag 615 which is set by the enhancement module 405. The fast span flag615 is typically stored in the memory 430 in port 5 (505).

Enhancement 3

In classical STP, the worst-case convergence, could be2*FORWARD_DELAY+BRIDGE_MAX_AGE. The default value for FORWARD_DELAY istypically about 15 seconds, BRIDGE_MAX_AGE (also referred herein as“bridge max age”) is a maximum period of time that is timed out whendetermining if a root port is able to listen for BPDUs from the rootbridge. When a new root port is selected after the message age timerexpiry, the newly selected root port goes through LISTENING and LEARNINGstages before the port is put to FORWARDING state. This is the expectedbehavior of the STP Std.

It is noted that STP does not converge for nearly approximately 2minutes associated with a complex topology change. For the illustrationof the problem to be solved during dynamic configuration, consider theSTP topology of network system 700 as shown in FIG. 7A. The system 700includes the following bridges: FDRY1 205, FDRY2 210, FDRY3 215, FDRY4220, FY5 701, and FY6 702.

In this topology of system 700, bridge FDRY4 220 is the root bridge ofthe topology and traffic will converge as shown in FIG. 7B. In thistopology of FIG. 7B, solid lines (e.g., lines 705-725) indicate theactive layer 2 (L2) paths and the dotted lines (e.g., lines 730-745)indicate redundant paths. STP has traffic has fully converged asindicated in FIG. 7B.

An example is now provided to describe a problem that is solved by anoperation of an embodiment of the invention. Now consider at this point,by administrative action, the bridge priority of the operational rootbridge FDRY4 220 was changed from a value=50 to a value=400. This changein the bridge priority is a valid topology change event, and the STPshould converge as indicated in FIG. 7C, with bridge FDRY1 205 as thenew root bridge, since bridge FDRY1 205 has the next best bridgepriority with a value=100.

The STP standard mandates that re-convergence happens in less thanapproximately 50 seconds. However, due to reasons described below, theSTP re-convergence in FIG. 7C takes much more than approximately 50seconds.

Bridge FDRY4 220 keeps sending (on all its ports) BPDUs with thefollowing message components:

-   -   {400: MAC_FDRY4 , 0, 400: MAC_FDRY4, Port_priority: PORT_NUMBER}

The following actions occur on bridge FDRY2 210.

-   -   (a) Bridge FDRY2 210 receives BPDUs 100 b (see FIG. 7C) from        bridge FDRY4 220. Bridge FDRY2 210 does not reply to these BPDU        messages 100 b since the port (i.e., port 7 (805)) on which the        BPDU messages 100 b are received is not a designated port. Port        7 (805) is not a designated port since port 7 (805) can not send        the best (most useful) BPDU on the segment 705 to which it is        connected, and a BPDU reply is only sent from a designated port.    -   (b) On transmission on 2/2, if the hold timer 802 is active and        configuration pending is TRUE.

(c) Assuming default values, at 20 seconds later, the message age timerwill expire in the root port of bridge FDRY2 210. As mentioned above, amessage age timer is timer on a NON-designated port.

(d) Now bridge FDRY2 210 assumes a role of a root bridge and transmits(on all its ports) BPDUs 100 c with the following message information:

-   -   {150: MAC_FDRY4, 0, 150: MAC_FDRY4, Port_priority: PORT_NUMBER}.

The following actions occur on bridge actions on bridge FDRY1 205.

Assuming that the message age timer did not expire on bridge FDRY1 205,the bridge FDRY1 205 replies (on all its designated ports) with thevector:

-   -   {50: MAC_FDRY4, 0, 100: MAC_FDRY1, Port_priority: PORT_NUMBER}.

These replies are shown as BPDUs 100 d on FIG. 7C. These BPDUs 100 d,when received by bridge FDRY2 210, qualifies to be SUPERIOR messages(more useful BPDUs than the BPDUs that are sent by FDRY2 210) and a newroot port is selected, and bridge FDRY2 210 stops having the role of theroot bridge. The BPDU 100 d qualifies to be a SUPERIOR message becausethe BPDU 100 d includes the previous bridge priority value of value=50of bridge FDRY4 220. Therefore, bridge FDRY1 205 is replying on behalfof a bridge FDRY4 220 with a bridge priority value of value=50 which nolonger exists in the system 100 after the administrative action wasperformed. Accordingly, since BPDU 100 d qualifies as a superiormessage, a new root port is accordingly selected on bridge FDRY2 210.

Therefore, in this example to illustrate a problem to be solved, themessage age timer on bridge FDRY2 210 had expired before the message agetimer on bridge FDRY1 205. Therefore, bridge FDRY2 210 advertised itselfas the root bridge by sending the BPDUs 100 c. Since the message agetimer in bridge FDRY1 205 has not expired, it replies to the BPDUs 100 cfrom bridge FDRY2 210 with the BPDUs 100 d which includes informationindicating that the root bridge is bridge FDRY4 220 with bridge priorityof value=50 (as previously shown in FIGS. 7A and 7B).

Now the root port on bridge FDRY2 210 has to expire its timer fortraffic convergence. Effectively, the root port which was about toexpire has made the malfunction in the system by replying with a BPDU,corresponding to a root bridge which does not exist in the giventopology. So the STP convergence takes much longer than the time thatthe standard expects convergence to occur.

As illustrated above, the problem is caused by a designated port, whenthe designated port tries to reply to an inferior (less useful) BPDUwhen the information currently held by the root port is about to be agedout. This problem could be avoided if the message age timer on bridgeFDRY1 205 had expired before the message age timer on bridge FDRY2 210.If the message age timer on bridge FDRY1 205 had expired first, thenbridge FDRY1 205 will reply to the bridge FDRY2 210 with the BPDUs 100 dthat includes the priority value of 100 for bridge FDRY1 205. A BPDU 100d with the bridge priority information of value=100 will be superior toa BPDU 100 c with the bridge priority information of value=150 forbridge FDRY2 210. However, it is not possible to guarantee that themessage age timer on bridge FDRY1 205 will expire before the message agetimer on bridge FDRY2 210. For example, the processor on bridge FDRY2210 might be faster than the processor on bridge FDRY1 205. As anotherexample, the processor on bridge FDRY1 205 may be in a state where theprocessor is not able to process packet traffic for a time period.

Reference is now made to the block diagram of FIG. 8 k which illustratesthe bridge FDRY1 205 for purposes of discussing an embodiment of theinvention. The default value for bridge max age (as set by the messageage timer 416) is approximately 20 seconds and the default value of thehello time is approximately 2 seconds. A hello timer 801 (FIG. 8) can beused to indicate the hello time expiry event. The message age timer 804,hold timer 802, and forward delay timer 803 are per-port timers (i.e.,timers in every port). The max-age value is used to initialize themessage age timer 804 correctly.

An embodiment of the invention provides a solution to the above-mentionproblem by providing a method where an operational designated port doesnot reply to an inferior message if the age of the message currentlyheld by the root port is approximately half of the bridge max age plusthe hello time. This time value is defined as the “limiting message age”time value and is expressed in equation (1).

Limiting message age=(bridge max age)/2+(hello time)  Equation (1)

Assuming default values are used in Equation (1), the value can becomputed for the limiting message age will be approximately 12 seconds.This is fairly a large value, since the 802.1D standard mandates thatBPDU messages are to be transmitted by all operational designated portonce in every hello time.

FIG. 8 is a block diagram of the bridge FDRY1 205 to illustrate a methodminimizing the delay in convergence time for a complex topology changein the network system 700. Assume that root port 3 (208) in bridge FDRY1205 previously received the BPDU 100 b from the root bridge FDRY4 220(with bridge priority at value=50). Assume that the bridge priority ofbridge FDRY4 220 is now change to value=400, as noted above. At thispoint, the bridge FDRY1 205 still has the no-longer-valid informationthat the root bridge is bridge FDRY4 220 (with bridge priority atvalue=50).

When the port 2 (206) in bridge FDRY1 205 receives the BPDU 100 c frombridge FDRY2 210 and the message age timer has less than 12 secondsremaining before expiry (i.e., less than the limiting message age timevalue of Equation (1)), then the enhancement module 405 will prevent theport 2 (206) from sending the reply message (BPDU 100 d) to the port 5(750) in bridge FDRY2 210. For example, the message age timer expiry isat approximately 2 seconds when the port 2 (206) in bridge FDRY1 205receives the BPDU 100 c from bridge FDRY2 210. As a result, port 2 (206)will not send the reply message BPDU 100 d, and the port 5 (750) doesnot receive the BPDU 100 d with the former bridge priority value of 50for bridge FDRY4 220.

The enhancement module 405 blocks the BPDU response messages from theports (e.g., port 2 (206)), if the port receives a BPDU and the messageage timer has less than the limiting message age value of Equation (1).

The various engines discussed herein may be, for example, software,commands, data files, programs, code, modules, instructions, or thelike, and may also include suitable mechanisms.

Reference throughout this specification to “one embodiment”, “anembodiment”, or “a specific embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,the appearances of the phrases “in one embodiment”, “in an embodiment”,or “in a specific embodiment” in various places throughout thisspecification are not necessarily all referring to the same embodiment.Furthermore, the particular features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments.

Other variations and modifications of the above-described embodimentsand methods are possible in light of the foregoing teaching.

Further, at least some of the components of an embodiment of theinvention may be implemented by using a programmed general purposedigital computer, by using application specific integrated circuits,programmable logic devices, or field programmable gate arrays, or byusing a network of interconnected components and circuits. Connectionsmay be wired, wireless, by modem, and the like.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application.

It is also within the scope of the present invention to implement aprogram or code that can be stored in a machine-readable medium topermit a computer to perform any of the methods described above.

Additionally, the signal arrows in the drawings/Figures are consideredas exemplary and are not limiting, unless otherwise specifically noted.Furthermore, the term “or” as used in this disclosure is generallyintended to mean “and/or” unless otherwise indicated. Combinations ofcomponents or actions will also be considered as being noted, whereterminology is foreseen as rendering the ability to separate or combineis unclear.

As used in the description herein and throughout the claims that follow,“a”, “an”, and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

It is also noted that the various functions, variables, or otherparameters or components shown in the drawings and discussed in the texthave been given particular names for purposes of identification.However, the function names, variable names, or other parameter namesare only provided as some possible examples to identify the functions,variables, or other parameters. Other function names, variable names, orparameter names may be used to identify the functions, variables, orparameters shown in the drawings and discussed in the text.

The above description of illustrated embodiments of the invention,including what is described in the Abstract, is not intended to beexhaustive or to limit the invention to the precise forms disclosed.While specific embodiments of, and examples for, the invention aredescribed herein for illustrative purposes, various equivalentmodifications are possible within the scope of the invention, as thoseskilled in the relevant art will recognize.

These modifications can be made to the invention in light of the abovedetailed description. The terms used in the following claims should notbe construed to limit the invention to the specific embodimentsdisclosed in the specification and the claims. Rather, the scope of theinvention is to be determined entirely by the following claims, whichare to be construed in accordance with established doctrines of claiminterpretation.

1. A method comprising: placing a port in fast span configuration; ifthe port receives any bridge protocol unit (BPDU), placing the port in anon-fast-span configuration; and upon initialization of the port, if theport is in a fast span configuration, shortening a forward delay of theport, wherein the port is placed in a forwarding state upon expiry ofthe delay.
 2. The method of claim 1, wherein the action of placing theport comprises: setting a fast span flag in the port if the port isplaced in the fast span configuration.
 3. The method of claim 1, whereinthe action of shortening the forward delay comprises: shortening theforward delay to less than 4 seconds.
 4. An apparatus comprising: aplurality of ports; and one or more engines configured to: place a portin fast span configuration; if the port receives any bridge protocolunit (BPDU), place the port in a non-fast-span configuration; and uponinitialization of the port, if the port is in a fast span configuration,shorten a forward delay of the port, wherein the port is placed in aforwarding state upon expiry of the delay.
 5. The apparatus of claim 4,wherein the one or more engines are further configured to set a fastspan flag in the port if the port is placed in the fast spanconfiguration.
 6. The apparatus of claim 4, wherein the one or moreengines are further configured to shorten the forward delay byshortening the forward delay to less than 4 seconds.
 7. The method ofclaim 1, wherein the action of placing the port comprises setting a fastspan flag in the port if the port is placed in the fast spanconfiguration; and the method further comprises, if a BPDU is detectedby the port, then in response to the detection, placing the port in anon-fast-span configuration.
 8. The apparatus of claim 4, wherein theone or more engines are further configured to place the port in anon-fast-span configuration in response to a BPDU being detected by theport, the placing of the port comprising setting a fast span flag in theport.
 9. A machine-readable medium having a program of instructionsstored thereon that are executable by the machine to perform a method,the method comprising: placing a port in fast span configuration; if theport receives any bridge protocol unit (BPDU), placing the port in anon-fast-span configuration; and upon initialization of the port, if theport is in a fast span configuration, shortening a forward delay of theport, wherein the port is placed in a forwarding state upon expiry ofthe delay.
 10. An apparatus comprising: means for placing a port in fastspan configuration; means for, if the port receives any bridge protocolunit (BPDU), placing the port in a non-fast-span configuration; andmeans for, upon initialization of the port, if the port is in a fastspan configuration, shortening a forward delay of the port, wherein theport is placed in a forwarding state upon expiry of the delay.